#ifndef ALTERA_MSGDMA_IOCTL_H_
#define ALTERA_MSGDMA_IOCTL_H_

#ifdef __KERNEL__
  #include <linux/ioctl.h>
#else
  #include <sys/ioctl.h>
#endif

// https://elixir.bootlin.com/linux/v4.4/source/Documentation/ioctl/ioctl-number.txt

#define ALTERA_MSGDMA_MAGIC 0xEE
#define ALTERA_MSGDMA_BUFFER_SIZE 0
#define ALTERA_MSGDMA_MIN_BLOCK_SIZE 1
#define ALTERA_MSGDMA_STOP 2
#define ALTERA_MSGDMA_RESET 3
#define ALTERA_MSGDMA_STOP_RESET 4

#define IO_ALTERA_MSGDMA_SET_BUFFER_SIZE _IOW(ALTERA_MSGDMA_MAGIC, ALTERA_MSGDMA_BUFFER_SIZE, unsigned long) /* IO_ALTERA_MSGDMA_SET_BUFFER_SIZE  - _IOW */
#define IO_ALTERA_MSGDMA_SET_MIN_BLOCK_SIZE _IOW(ALTERA_MSGDMA_MAGIC, ALTERA_MSGDMA_MIN_BLOCK_SIZE, unsigned long) /* IO_ALTERA_MSGDMA_SET_MIN_BLOCK_SIZE - _IOW */
#define IO_ALTERA_MSGDMA_STOP _IO(ALTERA_MSGDMA_MAGIC,ALTERA_MSGDMA_STOP) /* IO_ALTERA_MSGDMA_STOP - _IO */
#define IO_ALTERA_MSGDMA_RESET _IO(ALTERA_MSGDMA_MAGIC,ALTERA_MSGDMA_RESET) /* IO_ALTERA_MSGDMA_RESET - _IO */
#define IO_ALTERA_MSGDMA_STOP_RESET _IO(ALTERA_MSGDMA_MAGIC,ALTERA_MSGDMA_STOP_RESET) /* IO_ALTERA_MSGDMA_STOP_RESET - _IO */

#endif
